function [PH,ax]=Plot_MultiLines(XData,YData,InfoArgs)
arguments
    XData double;
    YData double;
    InfoArgs.T0 = 0;
    InfoArgs.LineProperty = [];
    InfoArgs.AxisProperty = GR_Axis('Box','off');
    InfoArgs.XTick = [];
    InfoArgs.YTick = [];
    InfoArgs.Symmetric = 1;
    InfoArgs.ax = gca();
end
ax = InfoArgs.ax;
N = size(YData,1); T = size(YData,2);

if isempty(InfoArgs.LineProperty)
    LP = cell(N,1);
    for ii=1:N
        LP{ii} = GR_Line('Color',MyColor('Blue',1-ii/(N+1)));
    end
else
    LP = InfoArgs.LineProperty;
end

if isempty(InfoArgs.XTick)
    XTickValue = GR_TickValue('Unit',4).Setup(XData);
else
    XTickValue = InfoArgs.XTick;
end
if isempty(InfoArgs.YTick)
    YTickValue = GR_TickValue('Symmetric',InfoArgs.Symmetric).Setup(YData); 
else 
    YTickValue = InfoArgs.YTick;
end

PH = zeros(N,1);
for ii=1:N
    PH(ii) = LP{ii}.Plot(ax,XData,YData(ii,:));
    hold on;
end
if InfoArgs.Symmetric
    GR_Line('Color','Black','Width',0.3).Plot(ax,XData,zeros(size(XData)));
end
ax.YTick = YTickValue; ax.YLim = [min(YTickValue),max(YTickValue)];
ax.XTick = XTickValue; ax.XLim = [min(XTickValue),max(XTickValue)];

InfoArgs.AxisProperty.Setup(ax);
